package model

// GranuleTaskStatus 任务的下载状态
type GranuleTaskStatus struct {
	// 文件总大小
	TotalSize int64
	// 已下载大小
	DownloadSize int64
}

// GranuleTask 表示一个具体的下载任务对象，精确到下载一个文件
type GranuleTask struct {
	// 影像标识符
	Identifier string `json:"identifier"`
	// 下载地址
	Url string `json:"url"`
	// 文件的MD5摘要
	Md5 string `json:"md5"`
	// 下载状态
	Status GranuleTaskStatus `json:"-"`
}

// NewGranuleTask 构造函数
func NewGranuleTask(identifier, url, md5 string) *GranuleTask {
	return &GranuleTask{
		Identifier: identifier,
		Url:        url,
		Md5:        md5,
		Status: GranuleTaskStatus{
			TotalSize:    0,
			DownloadSize: 0,
		},
	}
}